package cn.terminus.data.customer.settledenterpriseinfo.mapper;

import cn.terminus.common.customer.bean.analysis.CustomerNatureIndustryNumResultDto;
import cn.terminus.common.customer.bean.analysis.SettledEnterpriseAnalysisDto;
import cn.terminus.common.customer.bean.analysis.SettledEnterpriseLabelNumResultDto;
import cn.terminus.common.customer.bean.settledenterpriseinfo.dto.SettledEnterpriseInfoNewDto;
import cn.terminus.common.customer.bean.settledenterpriseinfo.dto.SettledEnterpriseInfoEditDto;
import cn.terminus.common.customer.bean.settledenterpriseinfo.dto.SettledEnterpriseInfoQueryDto;
import cn.terminus.common.customer.bean.settledenterpriseinfo.dto.SettledEnterpriseInfoDeleteDto;
import cn.terminus.common.customer.bean.settledenterpriseinfo.dto.SettledEnterpriseInfoGetsDto;
import cn.terminus.common.customer.bean.settledenterpriseinfo.dto.SettledEnterpriseInfoResultDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * (SettledEnterpriseInfo)表服务接口
 *
 * @author makejava
 * @since 2021-07-08 11:19:07
 */
public interface SettledEnterpriseInfoMapper {

    /**
     * 新增
     *
     * @param dto
     * @return
     */
    Integer add(SettledEnterpriseInfoNewDto dto);

    /**
     * 更新
     *
     * @param dto
     * @return
     */
    Integer update(SettledEnterpriseInfoEditDto dto);


    /**
     * gets
     *
     * @param dto
     * @return
     */
    SettledEnterpriseInfoResultDto gets(SettledEnterpriseInfoGetsDto dto);

    /**
     * 删除
     *
     * @param dto
     * @return
     */
    Integer delete(SettledEnterpriseInfoDeleteDto dto);

    /**
     * 查询
     *
     * @param dto
     * @return
     */
    List<SettledEnterpriseInfoResultDto> query(SettledEnterpriseInfoQueryDto dto);

    Integer updateSettledStatus(Long id);

    Integer updateSettledStatusToCustomer(@Param("ids") List<Long> ids);

    Integer updateStage(@Param("cboCustomerId") Long cboCustomerId);


    List<CustomerNatureIndustryNumResultDto> analysisSettledEnterpriseNature(SettledEnterpriseAnalysisDto dto);

    List<CustomerNatureIndustryNumResultDto> analysisSettledEnterpriseIndustry(SettledEnterpriseAnalysisDto dto);

    List<SettledEnterpriseLabelNumResultDto> analysisSettledEnterpriseLabel(SettledEnterpriseAnalysisDto dto);
}
